Telegram Group & Telegram Channel
Note #38 Go time 102: Application design 📻🎤

В этому выпуске Kat Zień, Peter Bourgon и Ben Johnson обсуждают тему, которая затрагивает каждый Go проект: как лучше всего организовать проект.

Краткое содержание интересных идей из эпизода:

1) выбираем структуру проекта в зависимости от вашего приложения/контекста, полезно лишний раз обсуждать с коллегами
2) никогда не используем “Global state”
3) Используем io.Reader/io.Writer вместо os.Stdout/os.Stdin для того, чтобы передавать buffer в тестах, тем самым контролировать поток ввода/вывода и логирование.
4) tiny main abstraction
func main() {
if err := run(); err != nil {
fmt.FPrintf(os.Stderr, "%s\n", err)
os.Exit(1)
}
}
// dummy
func run() error {
return nil
}
5) Пишем только то, что нужно прямо сейчас.
6) Пишем код который легко удалить, а не тот который легко расширить. 🔪
7) Не следует писать код - лишь бы удовлетворить компилятор, помним: мы пишем код для людей.
8) Фокусируемся на happy path, если пользователь что-то покупает - самое главное это как можно быстрее вернуть результат об успешной транзакции, а не упасть из-за того что лого не подгрузилось или email не отправился.
9) Начинаем с кода который выполняется последовательно и только позже добавляем concurrency.

P.S. От себя добавлю, что очень часто просматриваю как организованы чужие проекты на github. Например недавно, пересмотрел как организованы такие консольные утилиты как (docker, kubectl, helm3, doctl и так далее), что очень часто помогает выбрать наиболее удачную структуру.

https://changelog.com/gowww.tg-me.com/102



tg-me.com/golang_for_two/64
Create:
Last Update:

Note #38 Go time 102: Application design 📻🎤

В этому выпуске Kat Zień, Peter Bourgon и Ben Johnson обсуждают тему, которая затрагивает каждый Go проект: как лучше всего организовать проект.

Краткое содержание интересных идей из эпизода:

1) выбираем структуру проекта в зависимости от вашего приложения/контекста, полезно лишний раз обсуждать с коллегами
2) никогда не используем “Global state”
3) Используем io.Reader/io.Writer вместо os.Stdout/os.Stdin для того, чтобы передавать buffer в тестах, тем самым контролировать поток ввода/вывода и логирование.
4) tiny main abstraction

func main() {
if err := run(); err != nil {
fmt.FPrintf(os.Stderr, "%s\n", err)
os.Exit(1)
}
}
// dummy
func run() error {
return nil
}
5) Пишем только то, что нужно прямо сейчас.
6) Пишем код который легко удалить, а не тот который легко расширить. 🔪
7) Не следует писать код - лишь бы удовлетворить компилятор, помним: мы пишем код для людей.
8) Фокусируемся на happy path, если пользователь что-то покупает - самое главное это как можно быстрее вернуть результат об успешной транзакции, а не упасть из-за того что лого не подгрузилось или email не отправился.
9) Начинаем с кода который выполняется последовательно и только позже добавляем concurrency.

P.S. От себя добавлю, что очень часто просматриваю как организованы чужие проекты на github. Например недавно, пересмотрел как организованы такие консольные утилиты как (docker, kubectl, helm3, doctl и так далее), что очень часто помогает выбрать наиболее удачную структуру.

https://changelog.com/gowww.tg-me.com/102

BY 🇺🇦 Go for two :)




Share with your friend now:
tg-me.com/golang_for_two/64

View MORE
Open in Telegram


🇺🇦 Go на двоих Telegram | DID YOU KNOW?

Date: |

Newly uncovered hack campaign in Telegram

The campaign, which security firm Check Point has named Rampant Kitten, comprises two main components, one for Windows and the other for Android. Rampant Kitten’s objective is to steal Telegram messages, passwords, and two-factor authentication codes sent by SMS and then also take screenshots and record sounds within earshot of an infected phone, the researchers said in a post published on Friday.

A project of our size needs at least a few hundred million dollars per year to keep going,” Mr. Durov wrote in his public channel on Telegram late last year. “While doing that, we will remain independent and stay true to our values, redefining how a tech company should operate.

🇺🇦 Go на двоих from us


Telegram 🇺🇦 Go for two :)
FROM USA